package com.aura.springbook.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;


@Getter
@AllArgsConstructor
public enum UserRoleEnum {
    /**
     * 普通用户
     * <p>
     * 拥有基本的图书浏览、借阅、个人信息管理等权限
     */
    USER("USER", "普通用户"),

    /**
     * 管理员
     * <p>
     * 拥有系统管理权限，可以管理图书、分类、用户等
     */
    ADMIN("ADMIN", "管理员");

    private final String code;
    private final String description;

    /**
     * 根据code获取枚举
     * <p>
     * 通过角色码查找对应的枚举值
     *
     * @param code 角色码
     * @return 对应的枚举值
     * @throws IllegalArgumentException 当code无效时抛出异常
     */
    public static UserRoleEnum fromCode(String code) {
        for (UserRoleEnum role : UserRoleEnum.values()) {
            if (role.getCode().equals(code)) {
                return role;
            }
        }
        throw new IllegalArgumentException("无效的用户角色代码: " + code);
    }
}